// 导入JSONP
import originJSONP from 'jsonp'

// 处理param数据
function param (data) {
  let url = ''
  for (const key in data) {
    let value = data[key] !== undefined ? data[key] : ''
    url += `&${key}=${encodeURIComponent(value)}`
  }
  // 利用substring去掉第一个& 这里是格式需要
  return url ? url.substring(1) : ''
}

export default function jsonp (url, data, option) {
  // 定义URL地址
  url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)
  // 对原始的JSONP进行promise封装
  return new Promise((resolve, reject) => {
    originJSONP(url, option, (err, data) => {
      if (!err) { resolve(data) } else { reject(err) }
    })
  })
}
